package cn.csc.module.pay.dal.dataobject.jzborder;

import lombok.*;

import java.math.BigInteger;
import java.time.LocalDateTime;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.*;
import cn.csc.framework.mybatis.core.dataobject.BaseDO;

/**
 * 见证宝订单表(冻结分账) DO
 *
 * @author 曾铁树
 */
@TableName("pay_jzb_order")
@KeySequence("pay_jzb_order_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class JzbOrderDO extends BaseDO {

    /**
     * 标识Id(订单Id)
     */
    @TableId
    private BigInteger id;
    /**
     * 交易日期
     */
    private LocalDateTime tradeDate;
    /**
     * 商户ID
     */
    private BigInteger merchantId;
    /**
     * 外部商家商户ID
     */
    private String appUserId;
    /**
     * 订单金额
     */
    private BigDecimal amount;
    /**
     * 退款撤销冻结金额
     */
    private BigDecimal cancelAmount;
    /**
     * 支付订单ID
     */
    private BigInteger payOrderId;

    /**
     * 支付交易订单号(pay_order_extension.no)
     */
    private String tradeNo;
    /**
     * 支付订单状态,0:等待付款,1:交易成功,2:付款失败,3:取消订单,4:退款申请中,5:退款成功,6:订单过期
     */
    private Integer tradeStatus;
    /**
     * 交易类型,0:其他,1:支付,2:充值,3:提现,4:转账,5:消费 6:冻结充值
     */
    private Integer tradeType;
    /**
     * 第三方返回订单流水号
     */
    private String thirdId;
    /**
     * 第三方状态 0:待处理 5:失败 10:成功 
     */
    private Integer thirdStatus;
    /**
     * 见证宝订单状态(0待冻结，1冻结成功 2冻结失败,3冻结撤销成功 4冻结撤销失败 5分账成功 6分账失败 7分账撤销成功 8分账撤销失败 9订单日清算未完成 10冻结撤销中 11分账中 12分账撤销中)
     */
    private Integer jzbFreezeStatus;
    /**
     * 支付成功订单同步到平安银行状态(0:未同步见证宝,1:已同步见证宝)
     */
    private Integer jzbStatus;
    /**
     * 见证宝返回前置流水号
     */
    private String jzbFrontLogNo;
    /**
     * 支付类型 0001-微信
     */
    private String payChannelType;
    /**
     * 冻结充值电商见证宝系统生成的流水号, 调用KFEJZB6267接口返回的JzbAcceptSeqNo
     */
    private String freezeRechargeSeq;
    /**
     * 冻结充值子订单的单号, 本地生成
     */
    private String freezeRechargeNo;
    /**
     * 冻结充值成功时间
     */
    private LocalDateTime freezeTime;
    /**
     * 撤销冻结充值电商见证宝系统生成的流水号，调用KFEJZB6268接口返回的JzbAcceptSeqNo
     */
    private String refundFreezeSeq;
    /**
     * 撤销冻结充值成功时间
     */
    private LocalDateTime refundFreezeTime;
    /**
     * 分账电商见证宝系统生成的流水号，调用KFEJZB6271接口返回的JzbAcceptSeqNo
     */
    private String divideSeq;
    /**
     * 分账订单的子订单号
     */
    private String divideNo;
    /**
     * 分账比例(活动时使用)
     */
    private String divideRate;
    /**
     * 撤销分账电商见证宝系统生成的流水号，调用KFEJZB6272接口返回的JzbAcceptSeqNo
     */
    private String refundDivideSeq;
    /**
     * 撤销分账成功时间
     */
    private LocalDateTime refundDivideTime;
    /**
     * 分账成功时间
     */
    private LocalDateTime divideTime;
    /**
     * 手续费
     */
    private BigDecimal formality;
    /**
     * 华正支付手续费率
     */
    private String handFeeRate;
    /**
     * 备注
     */
    private String remarks;

    /**
     * 租户编号
     */
    private BigInteger tenantId;

}
